55ab5bf1b35488054032dc854bc0df3849ce5116,mp/src/main/java/org/teavm/flavour/mp/impl/CompositeMethodGenerator.java,CompositeMethodGenerator,captureValue,#Object#,220

Before Change


            insn.setReceiver(program.createVariable());
            insn.setConstant((Long) value);
            add(insn);
            return insn.getReceiver();
        } else if (value instanceof Float) {
            FloatConstantInstruction insn = new FloatConstantInstruction();
            insn.setReceiver(program.createVariable());

After Change


    }

    Variable captureValue(CapturedValue captured) {
        Object value = captured.obj;
        if (value == null) {
            NullConstantInstruction insn = new NullConstantInstruction();
            insn.setReceiver(program.createVariable());
            add(insn);
            return insn.getReceiver();
        } else if (value instanceof Integer) {
            IntegerConstantInstruction insn = new IntegerConstantInstruction();
            insn.setReceiver(program.createVariable());
            insn.setConstant((Integer) value);
            add(insn);
            Variable result = insn.getReceiver();
            if (!captured.primitive) {
                result = box(result, ValueType.INTEGER);
            }
            return result;
        } else if (value instanceof Long) {
            LongConstantInstruction insn = new LongConstantInstruction();
            insn.setReceiver(program.createVariable());
            insn.setConstant((Long) value);
            add(insn);
            Variable result = insn.getReceiver();
            if (!captured.primitive) {
                result = box(result, ValueType.LONG);
            }
            return result;
        } else if (value instanceof Float) {
            FloatConstantInstruction insn = new FloatConstantInstruction();
            insn.setReceiver(program.createVariable());
            insn.setConstant((Float) value);
            add(insn);
            Variable result = insn.getReceiver();
            if (!captured.primitive) {
                result = box(result, ValueType.FLOAT);
            }
            return result;
        } else if (value instanceof Double) {
            DoubleConstantInstruction insn = new DoubleConstantInstruction();
            insn.setReceiver(program.createVariable());
            insn.setConstant((Double) value);
            add(insn);
            Variable result = insn.getReceiver();
            if (!captured.primitive) {
                result = box(result, ValueType.DOUBLE);
            }
            return result;